#include <stdlib.h>
#include <string.h>

#include "dtk_types.h"
#include "dtk_debug.h"
#include "dtk_actor.h"
#include "dtk_scene.h"

const DString DTK_TYPE_SCENE = "DTKScene";

static void scene_show(DTKActor* self)
{
    DTKScene* scene = (DTKScene*)self;

    DTK_TYPE_ASSERT (self, DTK_TYPE_SCENE);
    return;
}

static void scene_hide(DTKActor* self)
{
    DTKScene* scene = (DTKScene*) self;

    DTK_TYPE_ASSERT (self, DTK_TYPE_SCENE);
    return;
}

DTKActor* dtk_scene_new()
{
    DTKScene*           scene;
    DTKActor*           actor;
    DTKLayout*          layout;
    DTKActorCallback*   funcs;

    actor = dtk_container_init(sizeof(DTKScene), DTK_TYPE_SCENE,
        DACAPS_HASCONTENT);
    scene = (DTKScene*) actor;

    layout = dtk_absolute_layout_new(actor);
    dtk_actor_set_layout(actor, layout);

    funcs = DTK_ACTOR_CALLBACK(actor);
    funcs->show = scene_show;
    funcs->hide = scene_hide;

    return actor;
}

